#include<bits/stdc++.h>
using namespace std;
using namespace std::chrono;


void solve(){
    int n,q;
    cin>>n>>q;
    vector<int> a(n);
    vector<int> cnt(1000005,0);
    vector<int> s (1000005,0);
    vector<int>sum(1000005,0);
    multiset<int> num;
    for(int i=0;i<n;i++){
        cin>>a[i];
    }
    int pos=0;
    int maxn=0;
    for(int i=1;i<=a[n-1];i++){
        int temp=i;
        if(temp==a[pos+1]){
            pos++;
        }
        int cnttemp=temp/a[pos];
        temp-=(temp/a[pos])*a[pos];
        cnttemp+=cnt[temp];
        cnt[i]=cnttemp;
        s[cnttemp]++;
        maxn=max(maxn,cnt[i]);
    }
    // cout<<maxn<<endl;
    for(int i=1;i<=1000000;i++){
        sum[i]=s[i]+sum[i-1];
    }
    // for(int i=1;i<=10;i++){
    //     cout<<sum[i]<<' ';
    // }
    // cout<<endl;
    // for(int i=1;i<=a[n-1];i++){
    //     int temp=i;
    //     int cnttemp=0;
    //     while(temp!=0){
    //         auto it=upper_bound(a.begin(),a.end(),temp);
    //         it--;
    //         cnttemp+=temp/(*it);
    //         int t=temp/(*it);
    //         temp-=t*(*it);
    //     }
    //     num.insert(cnttemp);
    // }
    // int p=1;
    // vector<int>g(1000005,0);
    // int size_g=0;
    // for(int i=1;i<=a[n-1];i++){
    //     g[1]++;
    //     size_g++;
    //     for(int j=0;j<n;j++){
    //         if(a[j])
    //     }
    // }
    while(q--){
        int m;
        cin>>m;
        if(m>=maxn){
            cout<<a[n-1]<<" ";
        }
        else cout<<sum[m]<<" ";
    }
    cout<<'\n';
}

int main(){
    ios::sync_with_stdio(0);
    cin.tie(0),cout.tie(0);
    int _=1;
    // cin>>_;
    // auto start=high_resolution_clock::now();
    while(_--){
        solve();
    }
    
    // auto end=high_resolution_clock::now();
    // auto duration=duration_cast<microseconds>(end-start);
    // cout<<"Time: "<<duration.count()/1000<<" ms"<<'\n'; 
    return 0;
}